﻿namespace KinonekoSoftware.CodariaDB.Documents.Shenanigans.Talking
{
    public abstract class TalkingBase : DeltaObject
    {
        
        private string _name;
        private string _intro;

        
        public string Intro
        {
            get => _intro;
            set => SetValue(ref _intro, value);
        }
        
        public string Name
        {
            get => _name;
            set => SetValue(ref _name, value);
        }
        
        
        public abstract void Remove(TalkingEngine engine);
        public abstract TalkingChannelType  Type     { get; }
        public required List<TalkingObject> Messages { get; init; }
    }

    public sealed class TalkingMember : RootObject
    {
        public string MemberID { get; init; }
        public string ChannelID { get; init; }
    }
}